package com.amsp.oa.oademo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@TableName("leave_application")
@ApiModel(description = "请假申请实体")
public class LeaveApplication implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty("申请编号")
    private String no;

    @ApiModelProperty("姓名")
    private String name;

    @ApiModelProperty("工号")
    private String employeeId;

    @ApiModelProperty("部门")
    private String department;

    @ApiModelProperty("组别")
    private String groupName;

    @ApiModelProperty("级别")
    private String level;

    @ApiModelProperty("班次")
    private String shift;

    @ApiModelProperty("请假类型")
    private String leaveType;

    @ApiModelProperty("工作代理人")
    private String workAgent;

    @ApiModelProperty("请假原因")
    private String reason;

    @ApiModelProperty("计划开始时间")
    private LocalDateTime plannedStartTime;

    @ApiModelProperty("计划结束时间")
    private LocalDateTime plannedEndTime;

    @ApiModelProperty("计划请假天数")
    private Double plannedDays;

    @ApiModelProperty("计划请假小时数")
    private Double plannedHours;

    @ApiModelProperty("实际开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime actualStartTime;

    @ApiModelProperty("实际结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime actualEndTime;

    @ApiModelProperty("实际请假天数")
    private Double actualDays;

    @ApiModelProperty("实际请假小时数")
    private Double actualHours;

    @ApiModelProperty("申请人")
    private String applicant;

    @ApiModelProperty("班组审批")
    private String groupApproval;

    @ApiModelProperty("部门主管审批")
    private String departmentSupervisorApproval;

    @ApiModelProperty("部门经理审批")
    private String departmentManagerApproval;

    @ApiModelProperty("部长/总监审批")
    private String directorApproval;

    @ApiModelProperty("总经理审批")
    private String generalManagerApproval;

    @ApiModelProperty("总裁/董事长审批")
    private String presidentApproval;

    @ApiModelProperty("企业管理部审批")
    private String managementDepartmentApproval;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime createTime;

    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime updateTime;
}